﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BL;
using BE;
using System.Data;

namespace UI.DireccionAcademica
{
    public partial class FrmMigracionDeNotas : System.Web.UI.Page
    {



        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                LLenarComboPeriodos();
                comboCiclo.Items.Insert(0, ComboTodos());
                comboCurso.Items.Insert(0, ComboTodos());
                comboAlumno.Items.Insert(0, ComboTodos());
            }

        }

        protected void comboEscuela_SelectedIndexChanged(object sender, EventArgs e)
        {
            comboCurso.Enabled = true;
            comboAlumno.Enabled = true;
            LLenarComboCurso();
            LLenarComboAlumno();
        }




        private void LLenarComboPeriodos()
        {
            LabelError.Text = "";
            try
            {
                MigracionNotas_BL cp = new MigracionNotas_BL();
                DataTable lista = cp.ObtenerPeriodos();
                comboSemestre.DataSource = lista;
                comboSemestre.DataTextField = "name";
                comboSemestre.DataValueField = "id";
                comboSemestre.DataBind();
                LLenarComboEspecialidad();
            }
            catch (Exception ex)
            {

                LabelError.Text = ex.Message;
            }

        }

        private ListItem ComboTodos()
        {
            ListItem item = new ListItem();
            item.Value = "-1";
            item.Text = "--Todos--";
            return item;
        }

        private void LLenarComboEspecialidad()
        {
            LabelError.Text = "";
            try
            {
                MigracionNotas_BL cp = new MigracionNotas_BL();
                String semestre = comboSemestre.SelectedItem.Value;
                DataTable lista = cp.ObtenerCategoriasMoodle(semestre);
                comboEspecialidad.DataSource = lista;
                comboEspecialidad.DataTextField = "name";
                comboEspecialidad.DataValueField = "id";
                comboEspecialidad.DataBind();
                comboEspecialidad.Items.Insert(0, ComboTodos());
                LLenarComboCiclo();
            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message;
            }

        }

        private void LLenarComboCiclo()
        {

            LabelError.Text = "";
            try
            {
                MigracionNotas_BL cp = new MigracionNotas_BL();
                String especialidad = comboEspecialidad.SelectedItem.Value;

                DataTable lista = null;

                if (especialidad != "-1")
                {
                    lista = cp.ObtenerCategoriasMoodle(especialidad);
                    comboCiclo.DataSource = lista;
                    comboCiclo.DataTextField = "name";
                    comboCiclo.DataValueField = "id";
                  
                }
                else { 
                    comboCiclo.DataSource = lista;
                }
                    comboCiclo.DataBind();
                    comboCiclo.Items.Insert(0, ComboTodos());
                    LLenarComboAlumno();
                    LLenarComboCurso();
                
            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message;
            }

        }




        private void LLenarComboCurso()
        {
            LabelError.Text = "";
            try
            {
                MigracionNotas_BL cp = new MigracionNotas_BL();
                String ciclo = comboCiclo.SelectedItem.Value;
                DataTable lista = cp.ObtenerCursosMoodle(ciclo);

                if (ciclo != "-1")
                {
                    comboCurso.DataSource = lista;
                    comboCurso.DataTextField = "fullname";
                    comboCurso.DataValueField = "id";
                    comboCurso.DataBind();
                    comboCurso.Items.Insert(0, ComboTodos());
                }

            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message;
            }

        }


        private void LLenarComboAlumno()
        {
            /*comboAlumno.Items.Insert(0, "--Todos--");*/
            LabelError.Text = "";
            try
            {
                MigracionNotas_BL cp = new MigracionNotas_BL();

                Int32 semestre = Convert.ToInt32(comboSemestre.SelectedItem.Value);
                Int32 especialidad = Convert.ToInt32(comboEspecialidad.SelectedItem.Value);
                Int32 ciclo = Convert.ToInt32(comboCiclo.SelectedItem.Value);

                if (ciclo + especialidad > 0)
                {
                    DataTable lista = cp.ListadoAlumnoMoodle(semestre, especialidad,ciclo );
                    comboAlumno.DataSource = lista;
                    comboAlumno.DataTextField = "NombreAlumno";
                    comboAlumno.DataValueField = "IDAlumno";
                    comboAlumno.DataBind();
                    comboAlumno.Items.Insert(0, ComboTodos());
                }
            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message; ;
            }
        }

        protected void comboSemestre_SelectedIndexChanged(object sender, EventArgs e)
        {
            LLenarComboEspecialidad();
        }

        protected void comboEspecialidad_SelectedIndexChanged(object sender, EventArgs e)
        {
            comboCiclo.Enabled = true;
            comboCurso.DataSource = null;
            comboCurso.DataBind();
            comboAlumno.DataSource = null;
            comboAlumno.DataBind();

            LLenarComboCiclo();
        }

        protected void btnBuscar_Click1(object sender, EventArgs e)
        {
            LabelError.Text = "";
            try
            {
                MigracionNotas_BL bl = new MigracionNotas_BL();
                Int32 semestre = Convert.ToInt32(comboSemestre.SelectedItem.Value);
                Int32 ciclo = Convert.ToInt32(comboCiclo.SelectedItem.Value);
                Int32 especialidad = Convert.ToInt32(comboEspecialidad.SelectedItem.Value);
                Int32 curso = Convert.ToInt32(comboCurso.SelectedItem.Value);
                Int32 alumnos = Convert.ToInt32(comboAlumno.SelectedItem.Value);
                DataTable data = bl.ListadoNotasMoodle(semestre, especialidad, ciclo, curso, alumnos);

                GridNotas.DataSource = data;
                GridNotas.DataBind();
            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message.ToString();
            }

        }

        protected void btnMigrar_Click(object sender, EventArgs e)
        {
            LabelError.Text = "";
            LabelExitoMigracion.Text = "";
            try
            { 
                MigracionNotas_BL blMigracion = new MigracionNotas_BL();

                Int32 IDSemestre = Convert.ToInt32(comboSemestre.SelectedItem.Value);
                Int32 IDEspecialidad = Convert.ToInt32(comboEspecialidad.SelectedItem.Value);
                Int32 IDCiclo = Convert.ToInt32(comboCiclo.SelectedItem.Value);
                Int32 IDCurso = Convert.ToInt32(comboCurso.SelectedItem.Value);
                Int32 IDAlumno = Convert.ToInt32(comboAlumno.SelectedItem.Value);

                CursoCategoria ccSemestre = blMigracion.ObtenerCursoCategoriaPorId(IDSemestre);
                CursoCategoria ccEspecialidad = blMigracion.ObtenerCursoCategoriaPorId(IDEspecialidad);
                CursoCategoria ccCiclo = blMigracion.ObtenerCursoCategoriaPorId(IDCiclo);
                CursoMoodle ccCurso = blMigracion.ObtenerCursoMoodlePorId(IDCurso);
                UsuarioMoodle ccUsuario = blMigracion.ObtenerUsuarioMoodlePorId(IDAlumno);

                String semestre = "--Todos--";
                if (ccSemestre != null)
                {
                    semestre = ccSemestre.idnumber;
                }

                String especialidad = "--Todos--";
                if (ccEspecialidad != null)
                {
                    especialidad = ccEspecialidad.idnumber.Substring(6, 2);
                }

                String ciclo = "--Todos--";
                if (ccCiclo != null)
                {
                    Int32 ciclonumero =Convert.ToInt32(ccCiclo.idnumber.Substring(9, 2));
                    ciclo = ciclonumero.ToString();

                } 

                String curso = "--Todos--";
                if (ccCurso != null)
                {
                    curso = ccCurso.idnumber.Substring(ccCurso.idnumber.Length-3, 3);
                } 


                String alumno = "--Todos--";
                if (ccUsuario != null)
                {
                    alumno = ccUsuario.username;
                }



                if (blMigracion.MigracionNotas(semestre, especialidad, ciclo, curso, alumno, User.Identity.Name.ToString()))
                {
                    LabelExitoMigracion.Text = "MIGRACION CORRECTA!!";
                };

            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message;
            }
        }



    }
}